/*
 * Copyright (c) 2020 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef OHOS_GALLERY_ABILITY_SLICE_H
#define OHOS_GALLERY_ABILITY_SLICE_H

#include <stdio.h>
#include <sys/time.h>
#include <algorithm>
#include <fstream>
#include <iostream>
#include <sstream>
#include <errno.h>

#include <ability_loader.h>
#include <components/ui_image_view.h>
#include <components/ui_label.h>
#include <components/ui_scroll_view.h>
#include <components/ui_surface_view.h>

#include "event_listener.h"
#include "camera_manager.h"

namespace OHOS {

class GalleryAbilitySlice : public AbilitySlice {
public:
    GalleryAbilitySlice() = default;
    ~GalleryAbilitySlice() override;

protected:
    void OnStart(const Want &want) override;
    void OnInactive() override;
    void OnActive(const Want &want) override;
    void OnBackground() override;
    void OnStop() override;

private:

    void Clear();

    RootView* rootView_ { nullptr };
    UIImageView* backIcon_ { nullptr };
    UILabel* backLabel_ { nullptr };
    UILabel* cameraLabel_ { nullptr };

    EventListener* backListener_ { nullptr };
    EventListener* cameraListener_ { nullptr };

    // UISurfaceView* surfaceView { nullptr };

    CameraKit* camKit { nullptr };
    EventHandler eventHdlr;
    SampleCameraStateMng* camStateMng { nullptr };

    bool isStart = false;
};
}

#endif
